//创建用户相关的小仓库
import {defineStore} from 'pinia'
//引入路由数组
import {luYou} from '@/router/routers'
//引入接口
import { getMyAuth } from '../../api/index';
 
//创建小仓库
let luYouStore=defineStore('luYou',{
        //小仓库存储数据的地方
        state:()=>{
           return {
              //路由
              ly:[]
           }
        },
        //异步| 逻辑处理的地方,在方法前面定义async，那么必须在拿到对应的方法前面加await 一起使用
        actions:{
               async useMyMenuList(){
                  //获取当前登录人的权限集合   
                  let res=await getMyAuth();
                  let auths=res.data;
                  //赋值给新的数组
                  let newLy = luYou.map(x => {
                     
                     if(auths.indexOf(x.meta.auth) !== -1){
                         //如果路径匹配 那么设置为显示菜单
                         x.meta.hidden=false
                     }
                     let children=x.children;   
                     if(children){
                        children.map(y=>{
                           if(auths.indexOf(y.meta.auth) !== -1){
                              //如果路径匹配 那么设置为显示菜单
                              y.meta.hidden=false
                           }
                           return y;
                        })
                     }
                     
                     return x;
                  });
                 
                  //更新state的数据
                  this.ly=newLy;
                 
            }
        },
        getters:{
 
        }
})
//对外暴露小仓库的方法
export default luYouStore;